package gui; import java.awt.Font; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Enumeration; import java.util.Vector; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; import domain.Offer; import domain.Owner; import domain.RuralHouse; public class listOfOffers extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private JTable table; private Owner owner; private DefaultTableModel tableModel; private Vector offers = new Vector(); /** * Create the frame. */ public listOfOffers(Owner own) { setTitle("Adding requests"); this.owner = own; try { init(); } catch (Exception e) { e.printStackTrace(); } } private void init() throws Exception { setBounds(100, 100, 600, 450); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); this.offers = new Vector(); for (RuralHouse rh: this.owner.getRuralHouses()){ this.offers.addAll(rh.getAllOffers()); } JLabel lblNewLabel = new JLabel(); lblNewLabel.setFont(new Font("Tahoma", Font.PLAIN, 27)); lblNewLabel.setBounds(23, 41, 536, 33); contentPane.add(lblNewLabel); if (this.offers.isEmpty()) lblNewLabel .setText("There are not bookings to be confirmed or denied"); else lblNewLabel.setText("List of offers:"); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(new Rectangle(45, 305, 320, 116)); scrollPane.setBounds(23, 113, 536, 271); contentPane.add(scrollPane); table = new JTable() { private static final long serialVersionUID = 1L; public boolean isCellEditable(int row, int column) { return false; }; }; scrollPane.setViewportView(table); tableModel = new DefaultTableModel(null, new String[] { "Offer #", "FirstDay", "LastDay", "Price" ,"RuralHouse"}); // Maybe there is a better way to avoid interaction. // table.setEnabled(false); table.setModel(tableModel); table.addMouseListener( new MouseAdapter(){ @Override public void mouseClicked(MouseEvent arg0) { int row = table.getSelectedRow(); listOfBookingRequestsGUI feat = new listOfBookingRequestsGUI(offers.get(row)); feat.setVisible(true); } }); Enumeration rhs = this.offers.elements(); while (rhs.hasMoreElements()) { Offer of = rhs.nextElement(); Vector row = new Vector(); row.add(of.getOfferNumber()); row.add(of.getFirstDay()); row.add(of.getLastDay()); row.add(of.getPrice()); row.add(of.getRuralHouse().getHouseName()); tableModel.addRow(row); } } }